package repeat.personal.util;

import org.apache.commons.lang.StringUtils;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * @author: Zhanggq
 * @date: 2019/5/15 12:01
 **/
public class ExeclReadUtil {
    public static void main(String[] args) {
        String folderPath = "D:\\执行记录";
        List<File> mlist =  ExeclReadUtil.getAllExeclFile(folderPath);
        // 已经获取了所有图片
        for (File file2 : mlist) {
            System.out.println(file2.getAbsolutePath());
            // 解析execl
            List<Map<String, String>> list = ExeclPoiUtil.execlToMap(file2.getAbsolutePath());
            //遍历解析出来的list
            for (Map<String, String> map : list) {
                for (Map.Entry<String, String> entry : map.entrySet()) {
                    System.out.print(entry.getKey() + ":" + entry.getValue() + ",");
                }
                System.out.println();
            }
        }
    }

    /**
     * 获取一个文件夹里的所有execl文件
     * @param folderPath 文件夹的路径
     * @return
     */
    public static List<File> getAllExeclFile(String folderPath){
        List<File> mlist = null;
        File mFile = new File(folderPath);
        if (mFile.exists() && mFile.isDirectory()) {
            mlist = new ArrayList<File>();
            getAllFile(mFile, mlist);
        }
        return mlist;
    }

    private static void getAllFile(File mFile, List<File> mlist) {
        // 1.获取子目录
        File[] files = mFile.listFiles();
        // 2.判断files是否是空的 否则程序崩溃
        if (files != null) {

            for (File file : files) {
                if (file.isDirectory()) {
                    getAllFile(file, mlist);//调用递归的方式
                } else {
                    // 4. 添加到集合中去
                    String fileName = file.getName();
                    // 过滤临时文件
                    if(StringUtils.isBlank(fileName)){
                        continue;
                    }
                    if(fileName.length() >= 2){
                        if("~$".equals(fileName.substring(0,2))){
                            continue;
                        }
                    }

                    if (fileName.endsWith(".xls") || fileName.endsWith(".xlsx")) {
                        mlist.add(file);//如果是这几种图片格式就添加进去
                    }
                }
            }
        }
    }
}
